﻿<!--***********************************************************************************

   Extended WPF Toolkit

   Copyright (C) 2007-2013 Xceed Software Inc.

   This program is provided to you under the terms of the Microsoft Public
   License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license 

   For more features, controls, and fast professional support,
   pick up the Plus Edition at http://xceed.com/wpf_toolkit

   Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids

  **********************************************************************************-->

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:Xceed.Wpf.Toolkit">

   <LinearGradientBrush x:Key="TextBoxBorder" EndPoint="0,20" MappingMode="Absolute" StartPoint="0,0">
      <GradientStop Color="#ABADB3" Offset="0.05" />
      <GradientStop Color="#E2E3EA" Offset="0.07" />
      <GradientStop Color="#E3E9EF" Offset="1" />
   </LinearGradientBrush>

   <LinearGradientBrush x:Key="TextBox_MouseOver" EndPoint="0,1" StartPoint="0,0">
      <GradientStop Color="#5794BF" Offset="0.05" />
      <GradientStop Color="#B7D5EA" Offset="0.07" />
      <GradientStop Color="#C7E2F1" Offset="1" />
   </LinearGradientBrush>

   <LinearGradientBrush x:Key="TextBox_Focused" EndPoint="0,1" StartPoint="0,0">
      <GradientStop Color="#3D7BAD" Offset="0.05" />
      <GradientStop Color="#A4C9E3" Offset="0.07" />
      <GradientStop Color="#B7D9ED" Offset="1" />
   </LinearGradientBrush>

   <SolidColorBrush x:Key="TextBox_DisabledBorder" Color="#ADB2B5" />
   <SolidColorBrush x:Key="TextBox_DisabledBackground" Color="#F4F4F4" />

   <DataTemplate x:Key="DefaultWatermarkTemplate">
      <ContentControl Content="{Binding}" Foreground="Gray" Focusable="False" />
   </DataTemplate>

   <Style x:Key="WatermarkTextBox" TargetType="{x:Type local:WatermarkTextBox}">
      <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
      <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
      <Setter Property="BorderBrush" Value="{StaticResource TextBoxBorder}" />
      <Setter Property="BorderThickness" Value="1" />
      <Setter Property="Padding" Value="3" />
      <Setter Property="AllowDrop" Value="true" />
      <Setter Property="FocusVisualStyle" Value="{x:Null}" />
      <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
      <Setter Property="Stylus.IsFlicksEnabled" Value="False" />
      <Setter Property="WatermarkTemplate" Value="{StaticResource DefaultWatermarkTemplate}" />
      <Setter Property="Template">
         <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:WatermarkTextBox}">
               <Grid>

                  <Border x:Name="Border"
                          BorderThickness="{TemplateBinding BorderThickness}"
                          BorderBrush="{TemplateBinding BorderBrush}"
                          CornerRadius="1"
                          Background="{TemplateBinding Background}">
                     <Grid>
                        <ScrollViewer x:Name="PART_ContentHost"
                                      SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                        <ContentPresenter x:Name="PART_WatermarkHost"
                                          Content="{TemplateBinding Watermark}"
                                          ContentTemplate="{Binding WatermarkTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource DefaultWatermarkTemplate}}"
                                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                          IsHitTestVisible="False"
                                          Margin="{TemplateBinding Padding}"
                                          Visibility="Collapsed" />
                     </Grid>
                  </Border>
                  <Border x:Name="MouseOverVisual" Opacity="0" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{StaticResource TextBox_MouseOver}" CornerRadius="1" />
                  <Border x:Name="FocusVisual" Opacity="0" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{StaticResource TextBox_Focused}" CornerRadius="1" />

               </Grid>
               <ControlTemplate.Triggers>
                  <MultiTrigger>
                     <MultiTrigger.Conditions>
                        <Condition Property="KeepWatermarkOnGotFocus" Value="False" />
                        <Condition Property="IsFocused" Value="False" />
                        <Condition Property="Text" Value="" />
                     </MultiTrigger.Conditions>
                     <MultiTrigger.Setters>
                        <Setter Property="Visibility" TargetName="PART_WatermarkHost" Value="Visible" />
                     </MultiTrigger.Setters>
                  </MultiTrigger>
                  <MultiTrigger>
                     <MultiTrigger.Conditions>
                        <Condition Property="KeepWatermarkOnGotFocus"
                                   Value="True" />
                        <Condition Property="Text"
                                   Value="" />
                     </MultiTrigger.Conditions>
                     <MultiTrigger.Setters>
                        <Setter Property="Visibility"
                                TargetName="PART_WatermarkHost"
                                Value="Visible" />
                     </MultiTrigger.Setters>
                  </MultiTrigger>
                  <Trigger Property="IsMouseOver" Value="True">
                     <Setter TargetName="MouseOverVisual" Property="Opacity" Value="1" />
                  </Trigger>
                  <Trigger Property="IsFocused" Value="True">
                     <Setter TargetName="FocusVisual" Property="Opacity" Value="1" />
                  </Trigger>
                  <Trigger Property="IsEnabled" Value="false">
                     <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
                  </Trigger>
               </ControlTemplate.Triggers>
            </ControlTemplate>
         </Setter.Value>
      </Setter>
   </Style>

   <Style TargetType="{x:Type local:WatermarkTextBox}" BasedOn="{StaticResource WatermarkTextBox}" />

</ResourceDictionary>
